#if !defined(FAKE_D3D11_VIEW_H)
#define FAKE_D3D11_VIEW_H

#include <d3d11.h>
#include "FakeD3D11DeviceChild.h"

class FakeD3D11View : public ID3D11View
{
public:
	FakeD3D11View() { }
	virtual ~FakeD3D11View() { }

	FAKE_D3D11_DEVICE_CHILD_IMPL(DeviceChild);
	virtual void STDMETHODCALLTYPE GetResource(__out  ID3D11Resource **ppResource) { throw std::exception("Not implemented"); }
};

#define FAKE_D3D11_VIEW_IMPL(member_)												\
	FAKE_D3D11_DEVICE_CHILD_IMPL(DeviceChild);										\
	FakeD3D11View member_;															\
	virtual void STDMETHODCALLTYPE GetResource(__out  ID3D11Resource **ppResource)	\
	{ member_.GetResource(ppResource); }

#endif
